#pragma once
#include <interface/imcc_interface.h>
#include "dlg_imcc.h"
#include "dll_object.h"



class imcc_impl : public aot::imcc::iimcc
{
public:
	imcc_impl(void);
public:
	~imcc_impl(void);

	virtual void destroy();
	///
	virtual void set_type(aot::imcc::imcc_info info);
	///
	virtual void create_wnd(HWND parent_wnd);
	///
	virtual void set_notify(HWND notify_wnd);
	///
	virtual void move_window(LPCRECT ptr_rect, BOOL repaint= TRUE );
	///
	virtual BOOL show_window(int cmd_show);
	///
	virtual void insert_xml(LPCTSTR ptr_xml, BOOL is_input_wnd, int xml_flag);
	///
	virtual void enable_enter_trap(BOOL enable);
	///
	virtual void set_focus(BOOL is_input_wnd);
	///
	virtual aot::imcc::estatus finish_input(aot::tt::istr *ptr_msg_pack);
	///
	virtual BOOL on_recv(LPCTSTR ptr_xml, LPCTSTR ptr_time, BOOL is_offline_msg = FALSE);
	/// 
	virtual void finish_offline_file_trans(aot::tt::istr *ptr_msg_pack, BOOL is_send, int result,
		LPCTSTR ptr_full_file_name, LPCTSTR ptr_ret_msg, LPCTSTR ptr_expire_time = "");
	///
	virtual void finish_file_trans(aot::tt::istr *ptr_msg_pack, BOOL is_send, BOOL is_folder, int result,
		LPCTSTR ptr_full_file_name, LPCTSTR ptr_ret_msg);
	/// 
	virtual void set_caption_bar_msg(aot::imcc::ecaption_bar_msg_type type, LPCTSTR ptr_msg, UINT elapse = 60000);
	/// 
	virtual void show_caption_bar(BOOL show, UINT elapse = 60000);
	/// 
	virtual void reply_sign_msg(int type, int db_id);
	/// 
	virtual void shake_msg(aot::tt::istr *ptr_msg_pack);
	/// 
	virtual int on_preproccess_msg(aot::tt::istr *ptr_msg_id,LPCTSTR ptr_xml, aot::imcc::imcc_info info, 
		aot::tt::istr *ptr_auto_reply_msg, LPCTSTR ptr_time, BOOL is_offline_msg = FALSE);
	/// 
	virtual void on_proccess_msg(int msg_type, LPCTSTR ptr_msg_id);
	///
	virtual void invalidate();
	///
	virtual void on_send_failed(int result, LPCTSTR ptr_msg);
	///
	virtual void add_to_user_face(LPCTSTR ptr_file_name);
	///
	virtual BOOL is_security_file(LPCTSTR ptr_file_name);
	///
	virtual BOOL has_img_in_trans();

protected:

	dlg_imcc dlg_imcc_;
};
